memory barrier(内存屏障 / 存储屏障):在并发编程与计算机体系结构中,用来限制编译器或 CPU 对内存读写操作的重排序的一种机制,从而确保某些读写的可见性与执行顺序符合程序员的并发意图。常见于多线程、锁、无锁算法与设备驱动等场景。(也常称 memory fence。)
/ˈmɛməri ˈbæriər/
A memory barrier ensures the write happens before the flag is set.
内存屏障确保写入先发生,然后才设置标志位。
Without a memory barrier, the compiler or CPU may reorder loads and stores, causing rare and hard-to-debug concurrency bugs.
如果没有内存屏障,编译器或 CPU 可能会重排读写,导致偶发且难以调试的并发错误。
由 memory(内存) + barrier(屏障/障碍) 组成。这里的 “barrier” 是比喻用法,表示在指令执行与内存访问之间设一道“关卡”,要求某些内存操作必须在它之前完成、或必须在它之后才开始,以维持并发语义。